package com.wzdigit.wms.basic.client.response.basic;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.wzdigit.wms.basic.client.BasicResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 库区输出
 * @author yangdongjie
 * @CreateZoneGroupRequest.java
 * @2021年1月4日上午11:18:30
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class ZoneResponse extends BasicResponse {

	private static final long serialVersionUID = -8008254335656609382L;

	/**
     * 库区ID
     */
    @ApiModelProperty(value = "库区ID", required = true)
    private Integer zoneId;
    
	/**
     * 库区代码
     */
    @ApiModelProperty(value = "库区代码", required = true)
    private String zoneCode;

    /**
     * 库区名称
     */
    @ApiModelProperty(value = "库区名称", required = true)
    private String zoneName;

    /**
     * 区域ID
     */
    @ApiModelProperty(value = "区域ID", required = true)
    private Integer zoneGroupId;
    
    /**
     * 拣货过渡库位：
     * 表示该库区的货物执行拣货操作时，将被拣取到所指定库位
	 * 如果此字段有值，订单分配时从对应区拣货记录会直接将这个过渡库位作为拣货目的库。 通常情况下可跳过，不设置
     */
    @ApiModelProperty(value = "拣货过渡库位", required = false)
    private Integer pickToLoc;

    /**
     * 入库过渡库位
     * 表示入库流程中，需要上架到该库区的货物，将首先移动到制定的库位作为上架过渡。通常情况下可跳过，不设置
     */
    @ApiModelProperty(value = "入库过渡库位", required = false)
    private Integer putawayToLoc;

    /**
     * 基地库位：
     * 用于设置库区的基地库位，通过基点计算目标库位的拣货距离
     */
    @ApiModelProperty(value = "基地库位", required = false)
    private Integer baseLoc;

    /**
     * 是否支持整箱补货
     */
    @ApiModelProperty(value = "是否支持整箱补货", required = false)
    private Integer allowEaRpl;

    /**
     * 是否支持拆零补货
     */
    @ApiModelProperty(value = "是否支持拆零补货", required = false)
    private Integer allowCsRpl;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态", required = true)
    private Integer status;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", required = false)
    private String comments;

    /**
     * 用户自定义字段1（库区基点名称）
     */
    @ApiModelProperty(value = "用户自定义字段1（基地库位名称）", required = false)
    private String udf1;

    /**
     * 用户自定义字段2
     */
    @ApiModelProperty(value = "用户自定义字段2", required = false)
    private String udf2;

    /**
     * 用户自定义字段3
     */
    @ApiModelProperty(value = "用户自定义字段3", required = false)
    private String udf3;

    /**
     * 用户自定义字段4
     */
    @ApiModelProperty(value = "用户自定义字段4", required = false)
    private String udf4;

    /**
     * 用户自定义字段5
     */
    @ApiModelProperty(value = "用户自定义字段5", required = false)
    private String udf5;
    
    // 区域代码
    @ApiModelProperty(value = "区域代码", required = true)
    private String zoneGroupCode;

    // 区域名称
    @ApiModelProperty(value = "区域名称", required = true)
    private String zoneGroupName;

    //新增
    // 仓库代码
    @ApiModelProperty(value = "仓库代码", required = true)
    private String whsCode;

    // 仓库名称
    @ApiModelProperty(value = "仓库名称", required = true)
    private String whsName;
}